There are many well known protocols for implementing electronic communication in a network. Two such protocols are the Address Resolution Protocol (ARP) and the Reverse Address Resolution Protocol (RARP). The ARP and RARP protocols may be used, for example, to implement communications in a network that includes two or more network nodes connected via an electronic bus. An exemplary network is shown in FIG. 1.
As can be seen from FIG. 1, transmissions directed from a first general purpose computer 2 to a second general purpose computer 4 are indicated by an arrow 6. Similarly, communications directed from the second computer to the first computer are indicated by an arrow 8. It should be understood that an electronic bus, such as an IEEE-1394 serial bus, interconnects computers 2 and 4, and is used to channel transmissions between the computers. The transmissions are abstractly represented by arrows 6 and 8. Furthermore, it should be understood that although FIG. 1 shows only two computers, the network represented in FIG. 1 may be made up of more than two computers. FIG. 1 is referenced below for purposes of describing ARP and RARP communication in more detail.
ARP may be used when a first network computer wishes to communicate with a second network computer but does not know the second computer's physical address. For example, computer 2 may wish to communicate with computer 4 but has only computer 4's internet protocol address (or "IP address") and not computer 4's physical address. In accordance with ARP, computer 2 broadcasts an "ARP request" (represented by arrow 6) over the network bus. The request includes the IP address of computer 4. By examining the IP address of the request, computer 4 recognizes that it is the intended recipient of the request. Computer 4 then transmits an "ARP response" (represented by arrow 8), which is addressed to computer 2 and contains computer 4's physical address.
RARP may be used when a network computer wishes to determine its IP address through the network. For example, computer 2, wishing to determine its IP address, broadcasts a "RARP request" (represented by arrow 6) over the network. The RARP request includes the IP address of computer 4, as well as the physical address of computer 2. After computer 4 ascertains that it is the intended recipient of the RARP request--through examination of the IP address--it determines the IP address of computer 2 by cross-referencing computer 2's physical address to computer 2's IP address and then transmits a "RARP response" (represented by arrow 8), which includes the IP address of computer 2.
Both ARP and RARP have drawbacks which limit their effectiveness. In ARP, a requesting node is limited to acquiring the physical address of a target node, and cannot acquire information that would facilitate communication between itself and the target node. In particular, the requesting node cannot acquire the address within the target computer of the application which is the subject of the request. Thus, in FIG. 1 for example, once computer 2 determines the physical address of computer 4, communication between the two computers may proceed, but each time computer 4 receives a communication packet from computer 2, computer 4's processing unit (CPU) must examine the received packet and then forward the packet to an appropriate application within its memory. Moreover, the size of the communication packets is limited in ARP, further limiting flexibility.
A drawback of RARP is its sensitivity to bus resets. When a network bus is reset--such as when the power supply is toggled, or a new device is connected to the network--the physical addresses of the network nodes may change, resulting in the generation of incorrect cross-references by nodes generating RARP responses. Thereby, resulting in the transmission of incorrect IP addresses to requesting nodes.